package cc.rengu.redp.bizimpl.igas.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.wuwenze.poi.annotation.ExcelField;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;

/**
 * 支付订单表
 *
 * @author System
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("T_P_PAY_ORDER_INFO")
public class CupsPayOrderInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 联合主键
     */
    @TableField(exist = false)
    private String id;

    /**
     * 银联前置流水号
     */
    @ExcelField(value = "银联前置流水号")
    @TableField("SYS_SEQ_NUM")
    private String sysSeqNum;

    /**
     * 银联前置日期
     */
    @ExcelField(value = "银联前置日期")
    @TableField("TXN_DATE")
    private String txnDate;

    /**
     * 商户号
     */
    @ExcelField(value = "商户号")
    @TableField("MCHNT_NO")
    private String mchntNo;

    /**
     * 商户户订单.term_no(终端号/二维码)
     */
    @ExcelField(value = "终端号")
    @TableField(exist = false)
    private String termNo;

    /**
     * 交易批次号
     */
    @ExcelField(value = "批次号")
    @TableField("TRANS_BATCH_NO")
    private String transBatchNo;

    /**
     * 支付通道对账唯一KEY
     */
    @TableField("CHANNEL_RECON_KEY")
    private String channelReconKey;

    /**
     * 系统跟踪号 channelReconKey(13,18)
     */
    @ExcelField(value = "系统跟踪号")
    @TableField(exist = false)
    private String sysTransNo;

    /**
     * 交易传输日期时间 channelReconKey(3,12)
     */
    @ExcelField(value = "交易传输日期时间")
    @TableField(exist = false)
    private String transDatetime;

    /**
     * 受理机构标识码
     */
    @ExcelField(value = "受理机构标识码")
    @TableField(value = "acq_inst_code",exist = false)
    private String acqInstCode;

    /**
     * 发送机构标志码
     */
    @ExcelField(value = "发送机构标志码")
    @TableField("ISS_INST_CODE")
    private String issInstCode;

    /**
     * 系统时间
     */
    @ExcelField(value = "系统时间")
    @TableField("TXN_TIME")
    private String txnTime;

    /**
     * 清算日期
     */
    @ExcelField(value = "清算日期")
    @TableField("SETTLE_DATE")
    private String settleDate;

    /**
     * 核心系统流水号
     */
    @ExcelField(value = "核心系统流水号")
    @TableField("CHANNEL_ORDER_ID")
    private String channelOrderId;

    /**
     * 系统检索号  联机未记录
     */
    @ExcelField(value = "系统检索号")
    @TableField(exist = false)
    private String sysCheckNo;

    /**
     * 内部交易码
     */
    @ExcelField(value = "交易码")
    @TableField("TXN_NUM")
    private String txnNum;

    /**
     * 交易类型
     */
    @ExcelField(value = "交易类型")
    @TableField(value = "txn_name",exist = false)
    private String txnName;

    /**
     * 付款方账号
     */
    @ExcelField(value = "付款方账号")
    @TableField("PAYER_ACCT_INFO")
    private String payerAcctInfo;

    /**
     * 相关账号
     */
    @TableField("PAYEE_ACCT_INFO")
    private String payeeAcctInfo;

    /**
     * 订单金额
     */
    @ExcelField(value = "订单金额")
    @TableField("ORDER_AMT")
    private String orderAmt;

    /**
     * 授权码
     */
    @ExcelField(value = "授权码")
    @TableField("TXN_AUTH_CODE")
    private String txnAuthCode;

    /**
     * 交易状态
     */
    @ExcelField(value = "交易状态",writeConverterExp = "0=初始状态,1=交易成功,2=交易失败,3=交易超时")
    @TableField("TRANS_STATUS")
    private String transStatus;

    /**
     * 错误描述
     */
    @ExcelField(value = "错误描述")
    @TableField("RESP_DESC")
    private String respDesc;

    /**
     * 手续费
     */
    @ExcelField(value = "手续费")
    @TableField("CUSTOMER_FEE")
    private String customerFee;


    /**
     * 机构标识
     */
    @TableField("INST_ID")
    private String instId;

    /**
     * 业务细分
     */
    @TableField("BIZ_TYPE")
    private String bizType;

    /**
     * 原交易日期
     */
    @TableField("ORIG_TXN_DATE")
    private String origTxnDate;

    /**
     * 原交易流水号
     */
    @TableField("ORIG_SYS_SEQ_NUM")
    private String origSysSeqNum;

    /**
     * 商户订单号
     */
    @TableField("MCHNT_ORDER_ID")
    private String mchntOrderId;

    /**
     * 订单有效期
     */
    @TableField("ORDER_EXPIRY_TIME")
    private String orderExpiryTime;

    /**
     * 用户编号
     */
    @TableField("USER_ID")
    private String userId;

    /**
     * 订单币种
     */
    @TableField("ORDER_CCY")
    private String orderCcy;

    /**
     * 交易通道标识
     */
    @TableField("MSG_DST_ID")
    private String msgDstId;

    /**
     * 通道调用序号
     */
    @TableField("DST_CALL_INDEX")
    private String dstCallIndex;

    /**
     * 通道类型
     */
    @TableField("DST_CHANNEL_TYPE")
    private String dstChannelType;

    /**
     * 通道业务类型
     */
    @TableField("CHANNEL_BIZ_TYPE")
    private String channelBizType;

    /**
     * 通道交易码
     */
    @TableField("DST_TXN_NUM")
    private String dstTxnNum;

    /**
     * 实际支付金额
     */
    @TableField("REAL_PAY_AMT")
    private String realPayAmt;

    /**
     * 通道优惠金额
     */
    @TableField("CHANNEL_DISCOUNT_AMT")
    private String channelDiscountAmt;

    /**
     * 通道手续费
     */
    @TableField("CHANNEL_FEE")
    private String channelFee;

    /**
     * 支付通道流水号
     */
    @TableField("CHANNEL_SEQ_NUM")
    private String channelSeqNum;

    /**
     * 付款方账户类型
     */
    @TableField("PAYER_ACCT_TYPE")
    private String payerAcctType;

    /**
     * 付款方预留信息
     */
    @TableField("PAYER_REMARK")
    private String payerRemark;

    /**
     * 收款方账户类型
     */
    @TableField("PAYEE_ACCT_TYPE")
    private String payeeAcctType;
    /**
     * 收款方预留信息
     */
    @TableField("PAYEE_REMARK")
    private String payeeRemark;

    /**
     * 支付方式
     */
    @TableField("PAY_TYPE")
    private String payType;

    /**
     * 业务状态
     */
    @TableField("BIZ_STATUS")
    private String bizStatus;

    /**
     * 响应码
     */
    @TableField("RESP_CODE")
    private String respCode;

    /**
     * 创建时间
     */
    @TableField("CREATE_TIME")
    private String createTime;

    /**
     * 修改时间
     */
    @TableField("UPDATE_TIME")
    private String updateTime;

    /**
     * 备用字段1
     */
    @TableField("REMARK1")
    private String remark1;

    /**
     * 备用字段2
     */
    @TableField("REMARK2")
    private String remark2;

    /**
     * 备用字段3
     */
    @TableField("REMARK3")
    private String remark3;

    /**
     * 付款方机构标识
     */
    @TableField(value = "payer_inst_code",exist = false)
    private String payerInstCode;

    @TableField(value = "msg_src_id",exist = false)
    private String msgSrcId;


    /**
     * 交易日期
     */
    @TableField(exist = false)
    private String txnDateFrom;

    /**
     * 交易日期
     */
    @TableField(exist = false)
    private String txnDateTo;

    /**
     * 商户名称
     */
    @TableField(exist = false)
    private String mchntName;

    /**
     * 商户订单.order_extra_info(subMchntName：二级商户名)
     */
    @TableField(exist = false)
    private String mchntOrderExtra;

    /**
     * 用户订单.order_extra_info(signNo:签约协议号)
     */
    @TableField(exist = false)
    private String userOrderExtra;

}
